查看原文
其他

每天一个 Linux 命令(43):killall 命令

2017-01-23 Linux爱好者

(点击上方公众号,可快速关注)


源:peida

http://www.cnblogs.com/peida/archive/2012/12/21/2827366.html

如有好文章投稿,请点击 → 这里了解详情


Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name)。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。


1.命令格式:


killall[参数][进程名]


2.命令功能:


用来结束同名的的所有进程


3.命令参数:


-Z 只杀死拥有scontext 的进程

-e 要求匹配进程名称

-I 忽略小写

-g 杀死进程组而不是进程

-i 交互模式,杀死进程前先询问用户

-l 列出所有的已知信号名称

-q 不输出警告信息

-s 发送指定的信号

-v 报告信号是否成功发送

-w 等待进程死亡

--help 显示帮助信息

--version 显示版本显示


4.使用实例:


实例1:杀死所有同名进程


命令:

killall vi


输出:


[root@localhost ~]# ps -ef|grep vi

root     17581 17398  0 17:51 pts/0    00:00:00 vi test.txt

root     17611 17582  0 17:51 pts/1    00:00:00 grep vi

[root@localhost ~]# ps -ef|grep vi

root     17581 17398  0 17:51 pts/0    00:00:00 vi test.txt

root     17640 17612  0 17:51 pts/2    00:00:00 vi test.log

root     17642 17582  0 17:51 pts/1    00:00:00 grep vi

[root@localhost ~]# killall vi

[root@localhost ~]# ps -ef|grep vi

root     17645 17582  0 17:52 pts/1    00:00:00 grep vi


实例2:向进程发送指定信号


命令:

后台运行程序:vi &

杀死 vi进程:killall -TERM vi  或者  killall -KILL vi


输出:


[root@localhost ~]# vi & 

[1] 17646[root@localhost ~]# killall -TERM vi

[1]+  Stopped                 vi

[root@localhost ~]# vi & 

[2] 17648[root@localhost ~]# ps -ef|grep vi

root     17646 17582  0 17:54 pts/1    00:00:00 vi

root     17648 17582  0 17:54 pts/1    00:00:00 vi

root     17650 17582  0 17:55 pts/1    00:00:00 grep vi


[2]+  Stopped                 vi

[root@localhost ~]# killall -TERM vi

[root@localhost ~]# ps -ef|grep vi

root     17646 17582  0 17:54 pts/1    00:00:00 vi

root     17648 17582  0 17:54 pts/1    00:00:00 vi

root     17653 17582  0 17:55 pts/1    00:00:00 grep vi

[root@localhost ~]# killall -KILL vi

[1]-  已杀死               vi

[2]+  已杀死               vi

[root@localhost ~]# ps -ef|grep vi

root     17656 17582  0 17:56 pts/1    00:00:00 grep vi

[root@localhost ~]#


实例3:把所有的登录后的shell给杀掉


命令:

killall -9 bash


输出:


[root@localhost ~]# w

 18:01:03 up 41 days, 18:53,  3 users,  load average: 0.00, 0.00, 0.00USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

root     pts/0    10.2.0.68        14:58    9:52   0.10s  0.10s -bash

root     pts/1    10.2.0.68        17:51    0.00s  0.02s  0.00s w

root     pts/2    10.2.0.68        17:51    9:24   0.01s  0.01s -bash

[root@localhost ~]# killall -9 bash

[root@localhost ~]# w

 18:01:48 up 41 days, 18:54,  1 user,  load average: 0.07, 0.02, 0.00USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT

root     pts/0    10.2.0.68        18:01    0.00s  0.01s  0.00s w

[root@localhost ~]#


说明:


运行命令:killall -9 bash 后,所有bash都会被卡掉了,所以当前所有连接丢失了。需要重新连接并登录。


本系列文章:


每天一个 Linux 命令(1):ls命令
每天一个 Linux 命令(2):cd命令
每天一个 Linux 命令(3):pwd命令
每天一个 Linux 命令(4):mkdir命令
每天一个 Linux 命令(5):rm 命令

每天一个 Linux 命令(6):rmdir 命令

每天一个 Linux 命令(7):mv命令

每天一个 Linux 命令(8):cp 命令

每天一个 Linux 命令(9):touch 命令

每天一个 Linux 命令(10):cat 命令 

每天一个 Linux 命令(11):nl命令

每天一个 Linux 命令(12):more命令

每天一个 Linux 命令(13):less 命令

每天一个 Linux 命令(14):head 命令

每天一个 Linux 命令(15):tail 命令

每天一个 Linux 命令(16):which命令

每天一个 Linux 命令(17):whereis 命令

每天一个 Linux 命令(18):locate 命令

每天一个 Linux 命令(19):find 命令概览

每天一个 Linux 命令(20):find命令之exec

每天一个 Linux 命令(21):find命令之xargs

每天一个 Linux 命令(22):find 命令的参数详解

每天一个 Linux 命令(23):Linux 目录结构

每天一个 Linux 命令(24):Linux 文件类型与扩展名

每天一个 Linux 命令(25):Linux 文件属性详解

每天一个 Linux 命令(26):用 SecureCRT 来上传和下载文件

每天一个 Linux 命令(27):chmod 命令

每天一个 Linux 命令(28):tar 命令

每天一个 Linux 命令(29):chgrp命令

每天一个 Linux 命令(30):chown命令

每天一个 Linux 命令(31):/etc/group文件详解

每天一个 Linux 命令(32):gzip命令

每天一个 Linux 命令(33):df 命令

每天一个 Linux 命令(34):du 命令

每天一个 Linux 命令(35):ln 命令

每天一个 Linux 命令(36):diff 命令

每天一个 Linux 命令(37):date命令

每天一个 Linux 命令(38):cal 命令

每天一个 Linux 命令(39):grep 命令

每天一个 Linux 命令(40):wc命令

每天一个 Linux 命令(41):ps命令

每天一个 Linux 命令(42):kill命令


看完本文有收获?请分享给更多人

关注「Linux 爱好者」,看技术干货

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存